home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr36 / gapcdr6.zip / GAPSTRUC.H < prev    next >
C/C++ Source or Header  |  1993-04-19  |  19KB  |  421 lines

  1. /*
  2.    Copyright (C) 1988-1993 The GAP Development Company
  3.  
  4.    All Rights Reserved
  5.    
  6.    This source code is considered to be confidential information proprietary
  7.    to The GAP Development Company.  It is prohibited and punishable by law
  8.    to use or duplicate any part of this information.
  9.  
  10.  
  11.    GAPSTRUC.H
  12.  
  13.    Header file for GAPCDR modules
  14. */
  15.  
  16. #pragma pack(1)                           // All structs must be packed
  17.  
  18.  
  19.    /******************************************************************/
  20.    /*  Record Structure For GAP'S USERS.DAT.                         */
  21.    /*                                                                */
  22.    /*  There are 4 indexes: IDX 1 = lname + fname (unique)           */
  23.    /*                       IDX 2 = lname + level (dupes allowed)    */
  24.    /*                       IDX 3 = handle (unique)                  */
  25.    /*                       IDX 4 = usernum (sequence #, unique)     */
  26.    /*                                                                */
  27.    /*  The Flags are defined as follows:                             */
  28.    /*    bit 7 - 0x80 : User wants to include Main Board in QWK      */
  29.    /*    bit 6 - 0x40 : User has QWK Network Status                  */
  30.    /*    bit 5 - 0x20 : Undefined                                    */
  31.    /*    bit 4 - 0x10 : Undefined                                    */
  32.    /*    bit 3 - 0x08 : Undefined                                    */
  33.    /*    bit 2 - 0x04 : Undefined                                    */
  34.    /*    bit 1 - 0x02 : Undefined                                    */
  35.    /*    bit 0 - 0x01 : Undefined                                    */
  36.    /******************************************************************/
  37.  
  38.    struct GAP_USER
  39.       {
  40.       char fname     [16];                // first name
  41.       char lname     [16];                // last name
  42.       char handle    [16];                // handle for MPART!
  43.       char passwd    [13];                // password
  44.       char hphone    [16];   // *         // homephone
  45.       char bphone    [16];   // *         // work/data phone
  46.       char subscribe  [9];                // subscription date
  47.       short  level;                       // security - up to 255
  48.       long usernum;          // *         // user's sequence number
  49.       long timeson;                       // times on - over 2 billion
  50.       char lastdate   [9];                // last date on - mm/dd/yy
  51.       char lasttime   [6];                // last time on - hh:mm
  52.       long ttlmins;                       // total mins on - 2+ billion
  53.       short  minutes;                     // # of minutes last call
  54.       long uploads;                       // # of uploads - 2+ billion
  55.       long downloads;                     // # of downloads - 2+ billion
  56.       long ttlbytes;                      // total bytes downloaded
  57.       long curbytes;                      // bytes downloaded this call
  58.       char private;                       // allow on private nodes?
  59.       char protocol   [3];                // transfer protocol
  60.       short  page;                        // page length - to 23
  61.       char lastdir    [9];                // date last looked at dir
  62.       long lastmsg;                       // last message read - 99999 max
  63.       long mesread;                       // total msgs read - 2+ billion
  64.       long mesleft;                       // total messages left
  65.       long forum_joined;                  // total forums joined
  66.       long blts_read;                     // total bulletins read
  67.       long doors_opened;                  // total doors opened
  68.       unsigned short lastconf;            // last forum in
  69.       char expert;                        // novice = N, expert = Y
  70.       char sysop;                         // sysop record, 1 = Y, 0 = N
  71.       long upbytes;                       // total bytes uploaded
  72.       short curdown;                      // total files downed today
  73.       char birthdate  [9];                // user's birthdate
  74.       char comment   [51];                // comment about user
  75.  
  76.       // version 6 stuff
  77.  
  78.       char add1      [26];                // Company or address
  79.       char add2      [26];                // Address
  80.       char city      [26];                // City
  81.       char state     [11];                // State
  82.       char zip       [11];                // Zip
  83.       char country   [16];                // Country
  84.       char regis_date [9];                // Date 1st signed on
  85.       char enf_time;                      // Y = enforce time limit, N = dont
  86.       char editor;                        // V = visual, L = line, A = Ask
  87.       char chat;                          // Y/N if available for chat
  88.       char msgclr;                        // Y = clear screen between msgs
  89.       short newmsg;                       // > 0 if new mail in Main
  90.       short timecredit;                   // any time credits user might have
  91.       short expired;                      // Expired Subscription level
  92.       char pub_forums;                    // Y = when expired, remove from private forums
  93.       short discons;                      // number of disconnects (ALT-H)
  94.       long per_time;                      // time used during sub period
  95.       long nu;                            // to go with above at some point
  96.       unsigned char flags;                // misc status flags
  97.       char nu1        [9];                // later additions
  98.       };                                  // 424 bytes
  99.  
  100.    struct PCBSYS14                        // structure of PCBOARD.SYS    
  101.       {
  102.       char display      [2];              // display on/off -1=on,0=off  
  103.       char printer      [2];              // printer on/off -1=on,0=off  
  104.       char pagebell     [2];              // page bell      -1=on,0=off  
  105.       char calleralarm  [2];              // caller alarm   -1=on,0=off  
  106.       char sysopnext;                     // sysop on next  N,X,space    
  107.       char errcorrect   [2];              // ecc modem      -1=yes,0=no  
  108.       char color;                         // color toggle   Y,N,7        
  109.       char nu;                            // node chat, not provided     
  110.       char baud         [5];              // com port bps rate           
  111.       char userbaud     [5];              // call bps rate               
  112.       short  userrec;                     // user record position        
  113.       char userfirst   [15];              // caller's first name         
  114.       char password    [12];              // users password              
  115.       short timeon;                       // time user logged on (mins)  
  116.       short timeused;                     // time user has used that day 
  117.       char ctime        [5];              // time user logged on hh:mm   
  118.       short timeallowed;                  // allowed time in minutes     
  119.       short ttlbytes;                     // total bytes available /1024 
  120.       char forumnum;                      // forum user was in "0" = main
  121.       char nu1          [5];              // areas been in, not provided 
  122.       char nu2          [5];              // areas scanned, not provided 
  123.       short timegiven;                    // highest forum time given    
  124.       short timecredit;                   // time credit in minutes      
  125.       char nu3          [4];              // language being used         
  126.       char username    [25];              // name of caller              
  127.       short minsleft;                     // minutes left for caller     
  128.       char node;                          // node number (short int)     
  129.       char event        [5];              // event time hh:mm            
  130.       char event_active [2];              // event active  -1=yes,0=no   
  131.       char slide_event  [2];              // slide event   -1=yes,0=no   
  132.       char nu4          [4];              // memorized mess #, not prov  
  133.       char port;                          // com port, '0','1','2'       
  134.       char nu5          [2];              // not used                    
  135.       };
  136.  
  137.  
  138.    //****************************************************************
  139.    //  you will need to consult the pcb documentation for a more     
  140.    //  detailed explanation of these fields.  Note that any          
  141.    //  double or float fields will have to be converted with the     
  142.    //  appropriate C conversion function.                            
  143.    //****************************************************************
  144.  
  145.    struct PCBUSER14                       // structure for PCB USERS     
  146.       {
  147.       char name         [25];             // users full name             
  148.       char city         [24];             // users home town             
  149.       char passwd       [12];             // users password              
  150.       char bphone       [13];             // users data phone number     
  151.       char hphone       [13];             // users home phone number     
  152.       char lastdate      [6];             // last date on as yymmdd (sic)
  153.       char lasttime      [5];             // last time on as hh:mm       
  154.       char expert;                        // expert mode                 
  155.       char protocol;                      // protol being used           
  156.       char nu;                            // not used                    
  157.       char lastdir       [6];             // last directory date yymmdd  
  158.       char level;                         // users level as short int    
  159.       short  timeson;                     // # of times on               
  160.       char page;                          // page length as short int    
  161.       short  uploads;                     // # of uploads                
  162.       short  downloads;                   // # of downloads              
  163.       double curdown;                     // current down bytes          
  164.       char comment1     [30];             // comment                     
  165.       char comment2     [30];             // comment                     
  166.       short elap;                         // elapsed time                  
  167.       char regisdate     [6];             // registration date yymmdd    
  168.       char exp_level;                     // expired security level      
  169.       char lastconf;                      // last forum in               
  170.       char forum_regis   [5];             // you figure it out cause     
  171.       char forum_exp     [5];             // these fields are definately 
  172.       char forum_scan    [5];             // NOT bit maps!               
  173.       double downbytes;                   // total downbytes             
  174.       double upbytes;                     // total upbytes               
  175.       char delete;                        // deleted user                
  176.       float lastmsg;                      // last msg read               
  177.       float lastmsg1    [39];             // last msg read in forums     
  178.       char nu1          [15];             // not used                    
  179.       };                                  // 400 bytes                   
  180.  
  181.  
  182. #define YES 1                             // used when calling show_mess()   
  183. #define NO  0
  184.  
  185.  
  186. #define TAB  9
  187. #define ESC  0x1b
  188.  
  189. #define F1  59 + 0x100
  190. #define F2  60 + 0x100
  191. #define F3  61 + 0x100
  192. #define F4  62 + 0x100
  193. #define F5  63 + 0x100
  194. #define F6  64 + 0x100
  195. #define F7  65 + 0x100
  196. #define F8  66 + 0x100
  197. #define F9  67 + 0x100
  198. #define F10 68 + 0x100
  199. #define F11 171 + 0x100
  200. #define F12 172 + 0x100
  201. #define CF10 103 + 0x100
  202.  
  203. #define HOME_KEY  71 + 0x100
  204. #define END_KEY   79 + 0x100
  205. #define PGUP      73 + 0x100
  206. #define PGDN      81 + 0x100
  207. #define CUR_LEFT  75 + 0x100
  208. #define CUR_RIGHT 77 + 0x100
  209. #define CUR_UP    72 + 0x100
  210. #define CUR_DOWN  80 + 0x100
  211.  
  212. #define CTRLK   11
  213. #define CTRLX   24
  214.  
  215. #define ON 1
  216. #define OFF 0
  217. #define TIMEOUT -10
  218.  
  219. //  ASCII Protocol Characters
  220.  
  221. #define NUL 0
  222. #define SOH 1
  223. #define STX 2
  224. #define ETX 3
  225. #define EOT 4
  226. #define ACK 6
  227. #define DLE 0x10
  228. #define DC1 0x11
  229. #define DC2 0x12
  230. #define DC3 0x13
  231. #define DC4 0x14
  232. #define NAK 0x15
  233. #define ETB 0x17
  234. #define CAN 0x18
  235. #define XON 0x11
  236. #define XOFF 0x13
  237.  
  238.  
  239.    // prototypes for GAPCDR functions 
  240.  
  241.    extern  void __pascal ansi(char *ansicolor);
  242.    extern  void __pascal backspace(short howmany);
  243.    extern  void __pascal do_chat(void );
  244.    extern  void __pascal update_clock(void );
  245.    extern  void __pascal clear_scrn(void );
  246.    extern  void __pascal elap_time(void );
  247.    extern  void __pascal time_left(void );
  248.    extern  void __pascal empty(unsigned char *str,short len);
  249.    extern  FILE * __pascal read_cnf(char *fname);
  250.    extern  short __pascal read_doorsys(void );
  251.    extern  short __pascal init_door(void );
  252.    extern  void __pascal no_carrier(void );
  253.    extern  void __pascal leave(short how);
  254.    extern  short __pascal read_gapuser(char *path );
  255.    extern  short __pascal write_gapuser(char *path );
  256.    extern  short __pascal getakey(void );
  257.    extern  void __pascal get_string(char *fld);
  258.    extern  void __pascal more(void );
  259.    extern  void __pascal nl(char howmany);
  260.    extern  void __pascal pagesysop(void );
  261.    extern  void __pascal pause(void );
  262.    extern  short __pascal read_pcbsys(void );
  263.    extern  short __pascal write_pcbsys(void );
  264.    extern  short __pascal read_pcbuser(char *path);
  265.    extern  short __pascal write_pcbuser(char *path );
  266.    extern  void __pascal write_score(char *datfile,unsigned long score);
  267.    extern  short __pascal read_score(char *datfile,char *message);
  268.    extern  void __pascal show_file(char *filename);
  269.    extern  void __pascal show_mess(char *vstring,char flag,char newline);
  270.    extern  void __pascal set_status(short update);
  271.    extern  void __pascal time_credit(short how);
  272.    extern  char *trim(char *str);
  273.    extern void __pascal cls(void);
  274.    extern void __pascal cls_all(void);
  275.    extern void  __pascal dv_pause(void);
  276.    extern short __pascal dv_here(void);
  277.  
  278.  
  279.    // prototypes for private GAPCDR functions 
  280.  
  281.    extern  void __pascal init_com(void );
  282.    extern  void __pascal wrap_word(void );
  283.    extern  void __pascal putkey(short c);
  284.    extern  short __pascal get_random(short low,short high);
  285.    extern void __pascal make_sound(unsigned short f, short dur);
  286.    extern short __pascal getkeyc(void);
  287.    extern short __pascal access1(char *fname);
  288.  
  289.    extern void __pascal gapputs(char *string);
  290.     extern void __pascal gapputc(short ch);
  291.    extern void __pascal lputs(char *str);
  292.    extern void __pascal lputc(short ch);
  293.    extern void __pascal curson(void);
  294.    extern void __pascal cursoff(void);
  295.    extern void __pascal timer(unsigned short tics);
  296.  
  297.    extern void __pascal init_ansi(void);
  298.    extern void __pascal fix_color(void);
  299.  
  300.    extern void __pascal set_int10(void);
  301.    extern void __pascal rest_int10(void);
  302.    extern void __pascal set_cord(unsigned char topr, unsigned char topc, unsigned char botr, unsigned char botc);
  303.    extern void __pascal set_attr(unsigned char forg, unsigned char back);
  304.    extern void __pascal get_attr(void);
  305.    extern void __pascal save_screen(short row1, short col1, short row2, short col2, unsigned short savemem);
  306.    extern void __pascal restore_screen(short row1, short col1, short row2, short col2, unsigned short savemem);
  307.    extern void __pascal set_int29(void);
  308.    extern void __pascal rest_int29(void);
  309.  
  310.  
  311.    extern void __pascal set_cbreak(void);
  312.    extern void __pascal rest_cbreak(void);
  313.  
  314.  
  315.    // prototypes for Communications routines
  316.  
  317.    short  __pascal setport(short  bufsize,short  irq,short  base);
  318.    void   __pascal reset_port(void);
  319.    short  __pascal init_port(short  parity,short  data);
  320.  
  321.    extern  short __pascal ckeypress(void );
  322.    extern  short __pascal comgetc(void );
  323.    extern  void __pascal __near is_carrier(void );
  324.    extern  void __pascal clr_buf(void );
  325.    extern  short __pascal comgetd(short secs);
  326.    extern  void __pascal computc(unsigned char ch);
  327.    extern  void __pascal computs(const unsigned char *str);
  328.    extern  void __pascal computb(const unsigned char *str, short length);
  329.    extern  void __pascal dtr(short how);
  330.    extern  void __pascal rts(short how);
  331.    extern  short __pascal iscd(void );
  332.    extern  short __pascal isring(void );
  333.    extern  short __pascal rxempty(void );
  334.    extern  short __pascal __near check_port(void );
  335.  
  336.  
  337.    // DigiBoard specific routines
  338.  
  339.  
  340.    extern void __pascal setdigi(void);
  341.  
  342.    // called by regular COM routines to set the Digi Flag to 0
  343.  
  344.  
  345.    extern short __pascal dsetup(short base,short port,short chnl,long baud,short parity,short data,short stop);
  346.  
  347.    // used to setup Direct DigiBoard Programming support
  348.    // RESETDIG.EXE must have already been run in the AUTOEXEC.BAT or this
  349.    // function will fail
  350.  
  351.    // base   = Memory Window
  352.    // port   = I/O Port
  353.    // chnl   = DigiBoard Channel # (1 - 8)
  354.    // baud   = baudrate (long)
  355.    // parity = 0 = None, 1 = Odd, 2 = Even
  356.    // data   = 6, 7, or 8
  357.    // stop   = 1 or 2
  358.  
  359.    // Return 0 = success
  360.    //        1 = no board
  361.    //        2 = Can't talk to board
  362.    //        3 = Invalid Parameter
  363.    //        4 = EPROM too old
  364.  
  365.  
  366.    extern short __pascal int14set(short chnl,long baud,short parity,short data,short stop);
  367.  
  368.    // used to setup DigiBoard via INT14/EBIOS Device Driver
  369.    // The Device Driver must be installed and configured for EBIOS Support
  370.    // or this function will fail
  371.  
  372.    // chnl   = DigiBoard Channel # (usually 4 - 11)
  373.    // baud   = baudrate (long)
  374.    // parity = 0 = None, 1 = Odd, 2 = Even
  375.    // data   = 6, 7, or 8
  376.    // stop   = 1 or 2
  377.  
  378.    // Return 0 = success
  379.    //        1 = Device Driver Not installed or board not installed
  380.    //        2 = EBIOS not configured
  381.    //        3 = Invalid Parameter
  382.  
  383.  
  384.    // all other Digi Functions work with either Direct Programming or
  385.    // Int14/EBIOS
  386.  
  387.  
  388.    extern void __pascal dmodem(long baud,short parity,short data,short stop);
  389.  
  390.    // used to change online modem parameters
  391.    // normally not used with a BBS, but with Term program
  392.  
  393.    // baud   = baudrate (long)
  394.    // parity = 0 = None, 1 = Odd, 2 = Even
  395.    // data   = 6, 7, or 8
  396.    // stop   = 1 or 2
  397.  
  398.  
  399.    extern void __pascal drestore(void);
  400.  
  401.    // Resets The Modem attached to the DigiBoard
  402.    // don't call if you want DTR to stay up
  403.  
  404.  
  405.    extern short __pascal dgtxfree(void);
  406.  
  407.    // get number of free bytes in Transmit Buffer
  408.    // returns 0 = No characters, otherwise number of bytes
  409.  
  410.  
  411.    extern short __pascal dmodstat(void);
  412.  
  413.    // Returns Modem Status in AL
  414.  
  415.  
  416.    extern void __pascal dclrtx(void);
  417.  
  418.    // Flushes the Digi Transmit Buffer
  419.    // no need to call if user has "Send Break To Clear Modem" set on
  420.    // since the Break Routine automatically clears the xmit buffer
  421.